package demo1216.pm;

/*
包装类:
1.在进行类型转换的范畴内，有一种特殊的转换，需要将int
这样的基本数据类型转换为对象。

2.所有基本类型都有一个与之对应的类，即包装。（wrapper）.

3.包装类是不可变类，在构造了包装类对象后，不允许更改包装
在其中的值；
4.包装类被final修饰,不能有子类

基本数据类型         包装类
byte                Byte
short               Short
int                 Integer
long                Long
float               Float
double              Double
char                Character
boolean             Boolean

Number抽象类是Byte,Short,Integer,Long,Float,Double的父类

学习一个Integer类:
常量:
public static final int MAX_VALUE;//int表达的最大值
public static final int MIN_VALUE;//int表示的最小值
构造方法:
public Integer(int value);创建一个Integer对象,它表示的是int类型的值.
public Integer(String s);创建一个Integer对象,数值表示的是字符串的整数形式

成员方法:
1.public static int parseInt(String s)throws NumberFormatException
把字符串转换为int类型的值.
2.public static Integer valueOf(String s)throws NumberFormatException
把字符串转换为Integer类型的对象.

3.public static Integer valueOf(int i);
返回一个表示指定的 int 值的 Integer 实例。
如果不需要新的 Integer 实例，则通常应优先使用该方法，
而不是构造方法 Integer(int)，
因为该方法有可能通过缓存经常请求的值而显著提高空间和时间性能。

4.public int intValue();以 int 类型返回该 Integer 的值。
 */
public class Demo_04 {
    public static void main(String[] args) {
        Integer num1 = new Integer("123");
        System.out.println(num1);

        String s = "1999";
        int i = Integer.parseInt(s);
        System.out.println(i);//1999

        Integer integer = Integer.valueOf(s);
    }

    public static void demo02() {
        Integer num1 = new Integer(200);
        Integer num2 = 200;
        Integer num3 = 200;
        System.out.println(num1 == num2);//false
        System.out.println(num3 == num2);//false
    }

    public static void demo01() {
    /*     System.out.println(Integer.MAX_VALUE);
         System.out.println(Integer.MIN_VALUE);*/
        Integer num = 200;
        byte b = num.byteValue();
        System.out.println(b);
    }
}
